var jsCommonCp = 1;        // 当前所在页
var jsCommonLs = 5;        // 每页显示的数据个数
var jsCommonPageSize;      // 总页数

$(function() {

	addSelectAllCheckboxListener($("#selectAll"));
	addDeleteListener($("#delbtn"));
	addplusListener($("#addbtn"));
	// 分页装载数据
	 loadData();
});

// 增加全选的监听
function addSelectAllCheckboxListener($ele) {
	$ele.on("click", function(event) {
		if ($(this).is(':checked')) {
			// 选中所有的复选框
			$("[name='nid']").each(function() {
				$(this).prop("checked", true);
			});
		} else {
			$("[name='nid']").each(function() {
				$(this).prop("checked", false);
			});
		}
	});
}
// 增加删除的监听 $("input:checkbox[name='a']:checked").length > 0
function addDeleteListener($ele) {
	$ele.on("click", function() {
		// 获取所有要删除的
		if ($("input:checkbox[name='nid']:checked").size() > 0) {
			// 删除选中的行数据
			var nids = "";
			$("input:checkbox[name='nid']:checked").each(function() {
				// 获取所有选中的value值，传给后台调用删除方法
				nids+=($(this).val()+",");
//				n = $(this).parents("tr").index(); // 获取checkbox所在行的顺序
				// 删除操作 
//				$("table#mytable").find("tr:eq(" + n + ")").remove();
			});
			nids = nids.substring(0,nids.length-1);
			// 调用后台删除方法
			$.post("newsAction/batchDel",{"nids": nids},function(obj){
					if(obj.success){
						alert("删除成功!");
						// 添加成功后 记得刷新页面
						jsCommonCp = 1; //还原第一页
						 loadData();
					}else{
						alert("删除失败!");
					}
				},"json");
			// 不管删除了几个，记得要把全选的复位
			$("#selectAll").prop("checked", false);
		} else {
			$("#mydialog-title").text("提示");
			$("#mydialog-body").html("<span>没有选中要删除的数据,请先选择要删除的数据。</span>");
			$("#control-btnDiv").html("<button class='btn btn-warning' id='cancel-btn' onclick='closedialog()'>取消</button>")
			$("#mydialog").modal("toggle");
		}
	});
}

// 增加对添加信息按钮的监听
function addplusListener($ele){
	
	$ele.on("click",function(){
		$("#modal-mydialog").attr("class","modal-dialog modal-lg");
		$("#mydialog-title").text("添加新闻");
		$("#control-btnDiv").html("<button class='btn btn-primary' id='addinfo_btn' >提交</button>&nbsp;<button class='btn btn-warning' onclick='closedialog()'>取消</button>")
		$("#mydialog-body").html('<form class="form-horizontal" id="newsForm" action="" method="post"><div class="form-group"><label class="control-label col-md-3" for="title">标题<span class="text-danger">*</span></label><div class="col-md-6" id="titleDiv"><input type="text" class="form-control" id="title" name="title" /></div><div class="col-md-3 text-left" style="font-size: 18px; margin-left:-20px;" id="titleMsg"></div></div><div class="form-group"><label class="control-label col-md-3" for="pubdate">日期<span class="text-danger">*</span></label><div class="col-md-6" id="pubdateDiv"><input type="date" class="form-control" id="pubdate" name="pubdate" /></div><div class="col-md-3 text-left" style="font-size: 18px; margin-left:-20px;" id="pubdateMsg"></div></div><div class="form-group"><label class="control-label col-md-3" for="content">内容<span class="text-danger">*</span></label><div class="col-md-6" id="contentDiv"><input type="text" class="form-control" id="content" name="content" /></div><div class="col-md-3 text-left" style="font-size: 18px; margin-left:-20px;" id="contentMsg"></div></div></form>');
		$("#addinfo_btn").on("click keydown",function(event){
				// 验证数据调用后台
				$.post("newsAction/addNews",{"title": $("#title").val(), "pubdate": $("#pubdate").val(),"content":$("#content").val()},function(obj){
					//添加成功提示添加成功!关闭弹出框		
					if(obj.success){
						alert("添加成功!");
						// 添加成功后 记得刷新页面
						jsCommonCp = 1; //还原第一页
						 loadData();
					}else{
						alert("添加失败!");
					}
					$("#mydialog").modal("hide");
				},"json");
		});
		// 显示模态窗口
		$("#mydialog").modal("show");
	});
}

function updateBtnFun(obj){
	
	// 有了JQuery对象获取包含该按钮的tr 的checkbox值
	var nid = $(obj).parents("tr").find("[type='checkbox']").val();
	// 先调用查询后台数据方法
	$.post("newsAction/findById",{"nid": nid},function(obj){
		//查询成功后弹出对话框		
		if(obj.success){
			$("#modal-mydialog").attr("class","modal-dialog modal-lg");
			$("#mydialog-title").text("修改新闻");
			$("#control-btnDiv").html("<button class='btn btn-primary' id='modifyinfo_btn' >提交</button>&nbsp;<button class='btn btn-warning' onclick='closedialog()'>取消</button>")
			$("#mydialog-body").html('<form class="form-horizontal" id="newsForm" action="" method="post"><div class="form-group"><label class="control-label col-md-3" for="title">标题<span class="text-danger">*</span></label><div class="col-md-6" id="titleDiv"><input type="text" class="form-control" id="title" name="title" value="'+obj.data.title+'"/></div><div class="col-md-3 text-left" style="font-size: 18px; margin-left:-20px;" id="titleMsg"></div></div><div class="form-group"><label class="control-label col-md-3" for="pubdate">日期<span class="text-danger">*</span></label><div class="col-md-6" id="pubdateDiv"><input type="date" class="form-control" id="pubdate" name="pubdate" value="'+obj.data.pubdate+'"/></div><div class="col-md-3 text-left" style="font-size: 18px; margin-left:-20px;" id="pubdateMsg"></div></div><div class="form-group"><label class="control-label col-md-3" for="content">内容<span class="text-danger">*</span></label><div class="col-md-6" id="contentDiv"><input type="text" class="form-control" id="content" name="content" value="'+obj.data.content+'"/></div><div class="col-md-3 text-left" style="font-size: 18px; margin-left:-20px;" id="contentMsg"></div></div></form>');
			$("#modifyinfo_btn").on("click keydown",function(event){
				$.post("newsAction/update",{"nid":nid,"title": $("#title").val(), "pubdate": $("#pubdate").val(),"content":$("#content").val()},function(obj){
					//添加成功提示添加成功!关闭弹出框		
					if(obj.success){
						alert("修改成功!");
						// 添加成功后 记得刷新页面
						jsCommonCp = 1; //还原第一页
						 loadData();
					}else{
						alert("修改失败!");
					}
					$("#mydialog").modal("hide");
				},"json");
			});
		  // 弹出修改对话框
		  $("#mydialog").modal("show");
		}else{
			alert("查询失败!");
		}
	},"json");
}


/**
 *  关闭弹出窗
 */
function closedialog() {
	$("#mydialog").modal("hide");
}


function loadData() {   // 定义数据读取的操作函数
	
	// 读取后台数据
	$.post("newsAction/findSplit",{"cp": jsCommonCp, "ls": jsCommonLs},function(obj){
		var success = obj.success;
		if(success){
			// 获取出后台数据总数
			var countNum = obj.data.count;
			 createSplitBar(countNum);
			 // 先清空之前的数据
			 $("#mytable tr:gt(0)").remove();
			 // 获取后台数据放到列表上
			var allData = obj.data.results;
			$(allData).each(function(index){
				var eachdata = allData[index];
				var tr=$("<tr></tr>");
				tr.append("<td class='text-center'><input type='checkbox' id='nid' name='nid' value='"+eachdata.nid+"' />"+"</td>")
				tr.append("<td class='text-center'>"+eachdata.title+"</td>");
				tr.append("<td class='text-center'>"+eachdata.pubdate+"</td>");
				tr.append("<td class='text-center'><a class='btn btn-xs btn-warning' onclick='updateBtnFun(this)'>修改</a></td>")
				$("#mytable").append(tr);
			});
		}else{
			alert("服务器端报错!");
		}
	},"json");
}
function createSplitBar(allRecorders) {    // 专门用于创建分页的操作
    clearBar();    // 清空全部的内容
    calcPageSize(allRecorders);    // 计算总页数
    if (jsCommonPageSize > 1) { // 有很多页
        previousPage() ;
        addBar(1) ;
    }
    var seed = 3 ;  // 设置一个分页种子数
    if (jsCommonCp > seed * 2) {    // 页码很大
        addDetailPage() ;   // 增加省略页
        var startPage = jsCommonCp - seed ;
        for (var x = startPage ; x <= jsCommonCp + seed ; x ++) {
            if (x < jsCommonPageSize) {
                addBar(x) ;
            }
        }
        if (jsCommonCp + seed * 2 < jsCommonPageSize) {
            addDetailPage() ;
        }
    } else {
        for (var x = 2 ; x <= jsCommonCp + seed ; x ++) {
            if (x < jsCommonPageSize) {
                addBar(x) ;
            }
        }
        if (jsCommonCp + seed <= jsCommonPageSize) {
            addDetailPage() ;
        }
    }

    addBar(jsCommonPageSize) ;
    if (jsCommonPageSize > 1) {
        nextPage() ;
    }
}
function addDetailPage() {
    var liObj = $("<li><span>...</span></li>") ;
    $("#pagecontrol").append(liObj) ;
}
function previousPage() {   // 上一页按钮
    var liObj = $("<li></li>");    // 定义li元素
    var aObj = $("<a style='cursor:pointer;'>上一页</a>");
    if (jsCommonCp == 1) {  // 已经是第一页了
        liObj.addClass("disabled") ;
    } else {
        aObj.on("click",function(){
            if (jsCommonCp > 1) {   // 可以有上一页
                jsCommonCp -- ;
                loadData();
            }
        })
    }
    liObj.append(aObj) ;
    $("#pagecontrol").append(liObj) ;
}
function nextPage() {   // 下一页按钮
    var liObj = $("<li></li>");    // 定义li元素
    var aObj = $("<a style='cursor:pointer;'>下一页</a>");
    if (jsCommonCp == jsCommonPageSize) {  // 已经是总页数
        liObj.addClass("disabled") ;
    } else {
        aObj.on("click",function(){
            if (jsCommonCp < jsCommonPageSize) {   // 可以有下一页
                jsCommonCp ++ ;
                loadData();
            }
        })
    }
    liObj.append(aObj) ;
    $("#pagecontrol").append(liObj) ;
}
function clearBar() {   // 清空已有的内容
    $("#pagecontrol li").remove();
}
function addBar(index) { // 专门生成分页控制代码
    var liObj = $("<li></li>");    // 定义li元素
    var aObj = $("<a style='cursor:pointer;'>" + index + "</a>");
    if (jsCommonCp == index) {  // 为当前所在页
        liObj.addClass("active") ;
    } else {
        aObj.on("click",function(){
            jsCommonCp = index ;
            loadData() ;
        })
    }
    liObj.append(aObj) ;
    $("#pagecontrol").append(liObj) ;
}
function calcPageSize(allRecorders) {   // 计算总页数
    if (allRecorders == 0) {    // 没有数据
        jsCommonPageSize = 1;  // 就在第1页上显示
    } else {    // 避免小数点问题
        jsCommonPageSize = parseInt((allRecorders + jsCommonLs - 1) / jsCommonLs);
    }
}

